package com.it.schoolbookshop_back.enums;

/**
 * 收藏状态枚举
 * 用于控制用户对书籍的收藏操作类型
 */
public enum FavoriteStatusEnum {

    /**
     * 添加收藏
     */
    ADD("add", "添加收藏"),

    /**
     * 取消收藏
     */
    REMOVE("remove", "取消收藏"),
    
    /**
     * 切换状态（自动判断当前状态并执行相反操作）
     */
    TOGGLE("toggle", "切换收藏状态");

    private final String value;
    private final String label;

    FavoriteStatusEnum(String value, String label) {
        this.value = value;
        this.label = label;
    }

    public String getValue() {
        return value;
    }

    public String getLabel() {
        return label;
    }

    /**
     * 根据值获取枚举
     *
     * @param value 枚举值
     * @return 枚举对象
     */
    public static FavoriteStatusEnum fromValue(String value) {
        for (FavoriteStatusEnum statusEnum : FavoriteStatusEnum.values()) {
            if (statusEnum.getValue().equals(value)) {
                return statusEnum;
            }
        }
        return null;
    }

    /**
     * 检查值是否有效
     *
     * @param value 枚举值
     * @return 是否有效
     */
    public static boolean isValid(String value) {
        return fromValue(value) != null;
    }
} 